Add integration tests
authorChris Wong <lambda.fairy@gmail.com>
Fri, 24 Apr 2015 03:24:46 +0000 (15:24 +1200)
committerChris Wong <lambda.fairy@gmail.com>
Fri, 24 Apr 2015 05:20:08 +0000 (17:20 +1200)
tests/test_cargo_new.rs

index d2bfd438dcc3a53d721376268a90518f43f5dffc..c73358a012a2e8f4191a1a5695e7c3cd017738b2 100644 (file)
@@ -96,6 +96,34 @@ test!(invalid_characters {
                        .with_stderr("Invalid character `.` in crate name: `foo.rs`"));
 });
 
+test!(rust_prefix_stripped {
+    assert_that(cargo_process("new").arg("rust-foo"),
+                execs().with_status(0)
+                       .with_stdout("Note: package will be named `foo`; use --name to override"));
+    let toml = paths::root().join("rust-foo/Cargo.toml");
+    let mut contents = String::new();
+    File::open(&toml).unwrap().read_to_string(&mut contents).unwrap();
+    assert!(contents.contains(r#"name = "foo""#));
+});
+
+test!(bin_disables_stripping {
+    assert_that(cargo_process("new").arg("rust-foo").arg("--bin"),
+                execs().with_status(0));
+    let toml = paths::root().join("rust-foo/Cargo.toml");
+    let mut contents = String::new();
+    File::open(&toml).unwrap().read_to_string(&mut contents).unwrap();
+    assert!(contents.contains(r#"name = "rust-foo""#));
+});
+
+test!(explicit_name_not_stripped {
+    assert_that(cargo_process("new").arg("foo").arg("--name").arg("rust-bar"),
+                execs().with_status(0));
+    let toml = paths::root().join("foo/Cargo.toml");
+    let mut contents = String::new();
+    File::open(&toml).unwrap().read_to_string(&mut contents).unwrap();
+    assert!(contents.contains(r#"name = "rust-bar""#));
+});
+
 test!(finds_author_user {
     // Use a temp dir to make sure we don't pick up .cargo/config somewhere in
     // the hierarchy